package marina;

public class J17StringMath {

	public static void main(String[] args) {
		// String
		// 리터럴로 문자열 객체를 만들때 동일한 문자열 값이 존재하면 그 값을 사용
		String a = "Hello";
		String b = "Java";
		String c = "Hello";
		System.out.println(System.identityHashCode(a));
		System.out.println(System.identityHashCode(b));
		System.out.println(System.identityHashCode(c));
		// new연산자로 문자열 객체를 만들때 동일한 문자열 값이 존재해도 매번 새로 생성
		String d = new String("Hello");
		String e = new String("Hello");
		String f = new String("Hello");
		System.out.println(System.identityHashCode(d));
		System.out.println(System.identityHashCode(e));
		System.out.println(System.identityHashCode(f));
		// String 주요 메서드
		String jumin = "890303-1234567";
		// 1. charAt : 지정한 위치의 문자 하나를 추출
		System.out.println(jumin.charAt(7)); // => 0부터 시작한다.
		if (jumin.charAt(7) == '1') {
			System.out.println("남자로구나");
		} else {
			System.out.println("여자로구나");
		}
		// 2. subString : 지정한 위치를 기준으로 지정한 갯수만큼 문자(들) 추출.
		System.out.println(jumin.substring(7));
		// => 시작위치만 적을 때는 나머지 숫자까지 모두 출력
		System.out.println(jumin.substring(0, 2));
		// => 두가지 인수일 때는 각각 시작위치와 추출하는 숫자의 갯수를 나타냄.
		int bYear = Integer.parseInt("19"+jumin.substring(0, 2));
		int age = 2014 - bYear + 1;
		System.out.println(age);
		//3. length : 문자열 길이 출력
		System.out.println(jumin.length());
		//4. split : 문자열을 구분자로 분리해서 배열에 담음
		String zipcode = "123-456,서울,광진구,자양동,321-456";
		String[] zip = zipcode.split(",");
		System.out.println(zip[0]);
		System.out.println(zip[1]);
		System.out.println(zip[2]);
		System.out.println(zip[3]);
		System.out.println(zip[4]); // => 결과는 반드시 배열
		//5. replace : 문자열 중 기존 문자열을 새로운 문자열로 교체
		String msg = "사랑해요, Java!";
		msg = msg.replace("Java", "HTML5");
		System.out.println(msg);
		//6. indexOf :
		System.out.println(jumin.indexOf('-'));
		//7. lastIndexOf :
		System.out.println(jumin.indexOf('6'));
		System.out.println(jumin.lastIndexOf('3'));
		// Math 주요 메서드
		//1. round : 반올림
		System.out.println(Math.round(9.1));
		System.out.println(Math.round(9.7));
		System.out.println(Math.round(-9.1));
		System.out.println(Math.round(-9.7));
		//2. ceil : 무조건 올림
		System.out.println(Math.ceil(9.1));
		System.out.println(Math.ceil(9.7));
		System.out.println(Math.ceil(-9.1));
		System.out.println(Math.ceil(-9.7));
		//3. floor : 무조건 내림, 버림
		System.out.println(Math.floor(9.1));
		System.out.println(Math.floor(9.7));
		System.out.println(Math.floor(-9.1));
		System.out.println(Math.floor(-9.7));
	}

}
